package livret.modele;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.*;

/**
 * La classe <b>Commentaire </b> représente ce qui pourrait être le retour dans le livre
 * Elle est créee par un type <b>Utilisateur</b> et a comme attribut
 * le nom de l'auteur
 * la date d'édition
 * le contenu
 * @author Solohery RAMANANARIVO, Fawzia CHABOUNI, Luc RABARIJAONA
 */
public class Commentaire {

   /**
    * Date représente la date de l'édition du message
    * @see getDate()
    * @see setDate(newDate);
    */
   private String date;
   /**
    * Contient le corps du message
    * @see getContenu()
    * @see setContenu(newContenu)
    */
   private String contenu;
   /**
    * Le nom de l'auteur du message
    * @see getnomAuteur()
    */
   private int id_auteur;
   private int id_destinataire;
   private int id_coursdestinataire;

    public void setId_auteur(int id_auteur) {
        this.id_auteur = id_auteur;
    }

    public void setId_coursdestinataire(int id_coursdestinataire) {
        this.id_coursdestinataire = id_coursdestinataire;
    }

    public void setId_destinataire(int id_destinataire) {
        this.id_destinataire = id_destinataire;
    }

    public int getId_auteur() {
        return id_auteur;
    }

    public int getId_coursdestinataire() {
        return id_coursdestinataire;
    }

    public int getId_destinataire() {
        return id_destinataire;
    }
   /**
    * le prenom de l'auteur du message
    * @see getprenomAuteur()
    */
   private String nomAuteur;
   private String prenomAuteur;
  

   /**
    * Getter de l'identifiant du message
    * @return l'identifiant de l'auteur du commentaire
    */
   public int getIdAuteur(){
       return id_auteur;
   }


   /**
    * Création d'un message ou un retour
    * @param date
    * @param id_auteur
    * @param nomAuteur
    * @param prenomAuteur
    * @param contenu
    */
    
    public Commentaire(String date, String contenu, int id_auteur,
            int id_destinataire, int id_coursdestinataire,
            String nomAuteur, String prenomAuteur) {
        this.date = date;
        this.contenu = contenu;
        this.id_auteur = id_auteur;
        this.id_destinataire = id_destinataire;
        this.id_coursdestinataire = id_coursdestinataire;
        this.nomAuteur = nomAuteur;
        this.prenomAuteur = prenomAuteur;
    }

   


   /** @return la date d'envoi du retour message
    */
   public String getDate() {
      return date;
   }

   /** @return le contenu du message
    * */
   public String getContenu() {
      return contenu;
   }

   /** @return le nom de l'auteur du message */
   public String getNomAuteur() {
      return nomAuteur;
   }

   /** @return le prenom de l'auteur du message */
   public String getPrenomAuteur() {
      return prenomAuteur;
   }


   /** @param newDate
    * @see modifie la date de l'edition du message */
   public void setDate(String newDate) {
      date = newDate;
   }

   /** @param newContenu
   */
   public void setContenu(String newContenu) {
      contenu = newContenu;
   }

   /** @param newNomAuteur
     */
   public void setNomAuteur(String newNomAuteur) {
      nomAuteur = newNomAuteur;
   }

   /**
    * Mise à jour d'un commentaire
    * @param date
    * @param id_auteur
    * @param nomAuteur
    * @param prenomAuteur
    * @param newContenu
    * @throws SQLException
    *
    * <b>Requiert</b></br>
    * oldContenu != null</br>
    * <b>Assure</b></br>
    * oldontenu == newContenu</br>
    * 
    */

   public void modifierCommentaire(String date,int id_auteur,String nomAuteur, String prenomAuteur, String newContenu) throws SQLException{
       Connection connexion = null;
        Statement select = null;
        PreparedStatement ps = null;
        

        try {
            connexion = DataBase.getConnection();
            select = connexion.createStatement();
            String sql = "UPDATE commentaire SET contenu ='"+newContenu+"'WHERE id_auteur ='"+id_auteur+
                    "' AND date = '"+date+"' AND prenomAuteur ='"+
                    prenomAuteur+"' AND nomauteur ='"+nomAuteur+"';";
         
            ps=connexion.prepareStatement(sql);
            ps.executeUpdate();
    } finally {
      DataBase.close(ps);
      DataBase.close(select);
      DataBase.close(connexion);
    }
   }

}
